package com.cloud.wms.ui.in.contract;


import com.cloud.core.base.BasePresenter;
import com.cloud.core.base.BaseView;
import com.cloud.wms.ui.in.entity.InCommodityEntity;
import com.cloud.wms.ui.in.entity.InOrderEntity;
import com.cloud.wms.ui.main.entity.TaskEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author:Chen
 * @Date: 2021-01-14 15:49
 * @Description:
 */
public interface InInventoryContract {
    interface View extends BaseView {
    }

    interface Presenter extends BasePresenter<View> {
        void loadInOrderList(String inCode, int page);

        void receiveInventoryTask(InOrderEntity inOrderEntity, String taskCode);

        void checkCommodityCode(String InID, String code);

        void loadInCommodityList(String InID, boolean isComplete);

        void submitMarkInventory(
                TaskEntity taskEntity,
                InOrderEntity inOrder,
                long commodityID,
                int stockType,
                String produceDate,
                String deadlineDate,
                String inDate,
                String markFlag,
                String markSize,
                String markAmount,
                boolean isPrint,
                String beginTime);

        void verifySubmit(
                InOrderEntity inOrder,
                InCommodityEntity commodityList);

        void submitBatchInventory(
                TaskEntity taskEntity,
                InOrderEntity inOrder,
                InCommodityEntity commodityEntity,
                String beginTime,
                int what);

        void submitSingleInventory(
                TaskEntity taskEntity,
                InOrderEntity inOrder,
                List<InCommodityEntity> commodityEntities,
                String beginTime);

        void submitSingleNoOrderInventory(List<InCommodityEntity> commodityEntities, String beginTime);

        void submitMarkNoOrderInventory(
                long commodityID,
                int stockType,
                String produceDate,
                String deadlineDate,
                String inDate,
                String markFlag,
                String markSize,
                String markAmount);
    }
}
